From 7b5fe316d0278878c413afe8a232e803a1236e03 Mon Sep 17 00:00:00 2001 From: Michael Schumacher Date: Tue, 12 Sep 2006 20:19:29 +0000 Subject: [PATCH] use the autogen.sh of GIMP as a base for babl's autogen.sh. Among other 2006-09-12 Michael Schumacher * autogen.sh: use the autogen.sh of GIMP as a base for babl's autogen.sh. Among other things, this enables maintainer mode by default. --- ChangeLog | 6 ++ autogen.sh | 252 ++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 219 insertions(+), 39 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4235d8e..6036667 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-09-12 Michael Schumacher + + * autogen.sh: use the autogen.sh of GIMP as a base for babl's + autogen.sh. Among other things, this enables maintainer mode by + default. + 2006-09-10 Kevin Cozens * babl/babl-classes.h diff --git a/autogen.sh b/autogen.sh index d4de7b0..c69cfd7 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,50 +1,224 @@ -#! /bin/sh +#!/bin/sh -# $Id$ +# This script does all the magic calls to automake/autoconf and +# friends that are needed to configure a cvs checkout. As described in +# the file HACKING you need a couple of extra tools to run this script +# successfully. # -# Copyright (c) 2002 Daniel Elstner -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License VERSION 2 as -# published by the Free Software Foundation. You are not allowed to -# use any other version of the license; unless you got the explicit -# permission from the author to do so. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# If you are compiling from a released tarball you don't need these +# tools and you shouldn't use this script. Just call ./configure +# directly. + +ACLOCAL=${ACLOCAL-aclocal-1.9} +AUTOCONF=${AUTOCONF-autoconf} +AUTOHEADER=${AUTOHEADER-autoheader} +AUTOMAKE=${AUTOMAKE-automake-1.9} +LIBTOOLIZE=${LIBTOOLIZE-libtoolize} + +AUTOCONF_REQUIRED_VERSION=2.54 +AUTOMAKE_REQUIRED_VERSION=1.8.3 +LIBTOOL_REQUIRED_VERSION=1.4 +LIBTOOL_WIN32=1.5 + + +PROJECT="BABL" +TEST_TYPE=-d + + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. +ORIGDIR=`pwd` +cd $srcdir + + +check_version () +{ + VERSION_A=$1 + VERSION_B=$2 + + save_ifs="$IFS" + IFS=. + set dummy $VERSION_A 0 0 0 + MAJOR_A=$2 + MINOR_A=$3 + MICRO_A=$4 + set dummy $VERSION_B 0 0 0 + MAJOR_B=$2 + MINOR_B=$3 + MICRO_B=$4 + IFS="$save_ifs" + + if expr "$MAJOR_A" = "$MAJOR_B" > /dev/null; then + if expr "$MINOR_A" \> "$MINOR_B" > /dev/null; then + echo "yes (version $VERSION_A)" + elif expr "$MINOR_A" = "$MINOR_B" > /dev/null; then + if expr "$MICRO_A" \>= "$MICRO_B" > /dev/null; then + echo "yes (version $VERSION_A)" + else + echo "Too old (version $VERSION_A)" + DIE=1 + fi + else + echo "Too old (version $VERSION_A)" + DIE=1 + fi + elif expr "$MAJOR_A" \> "$MAJOR_B" > /dev/null; then + echo "Major version might be too new ($VERSION_A)" + else + echo "Too old (version $VERSION_A)" + DIE=1 + fi +} + +echo +echo "I am testing that you have the tools required to build the" +echo "$PROJECT from CVS. This test is not foolproof," +echo "so if anything goes wrong, see the file HACKING for more information..." +echo + +DIE=0 + + +OS=`uname -s` +case $OS in + *YGWIN* | *INGW*) + echo "Looks like Win32, you will need libtool $LIBTOOL_WIN32 or newer." + echo + LIBTOOL_REQUIRED_VERSION=$LIBTOOL_WIN32 + ;; +esac + + +echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... " +if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then + LIBTOOLIZE=$LIBTOOLIZE +elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then + LIBTOOLIZE=glibtoolize +else + echo + echo " You must have libtool installed to compile $PROJECT." + echo " Install the appropriate package for your distribution," + echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + echo + DIE=1 +fi + +if test x$LIBTOOLIZE != x; then + VER=`$LIBTOOLIZE --version \ + | grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` + check_version $VER $LIBTOOL_REQUIRED_VERSION +fi -dir=`echo "$0" | sed 's,[^/]*$,,'` -test "x${dir}" = "x" && dir='.' +echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... " +if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1; then + VER=`$AUTOCONF --version | head -n 1 \ + | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` + check_version $VER $AUTOCONF_REQUIRED_VERSION +else + echo + echo " You must have autoconf installed to compile $PROJECT." + echo " Download the appropriate package for your distribution," + echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/" + echo + DIE=1; +fi + + +echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... " +if ($AUTOMAKE --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=$AUTOMAKE + ACLOCAL=$ACLOCAL +elif (automake-1.9 --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake-1.9 + ACLOCAL=aclocal-1.9 +elif (automake-1.8 --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake-1.8 + ACLOCAL=aclocal-1.8 +else + echo + echo " You must have automake $AUTOMAKE_REQUIRED_VERSION or newer installed to compile $PROJECT." + echo " Download the appropriate package for your distribution," + echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/" + echo + DIE=1 +fi + +if test x$AUTOMAKE != x; then + VER=`$AUTOMAKE --version \ + | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` + check_version $VER $AUTOMAKE_REQUIRED_VERSION +fi -if test "x`cd "${dir}" 2>/dev/null && pwd`" != "x`pwd`" -then - echo "This script must be executed directly from the source directory." + +if test "$DIE" -eq 1; then + echo + echo "Please install/upgrade the missing tools and call me again." + echo exit 1 fi -rm -f config.cache acconfig.h -echo "- libtoolize." && \ -libtoolize --force && \ -echo "- aclocal." && \ -aclocal && \ -echo "- autoconf." && \ -autoconf && \ -echo "- autoheader." && \ -autoheader && \ -echo "- automake." && \ -automake --add-missing --gnu && \ -echo && \ -./configure "$@" && exit 0 -#echo && \ -#make && exit 0 +echo +echo "I am going to run ./configure with the following arguments:" +echo +echo " --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS $@" +echo + +if test -z "$*"; then + echo "If you wish to pass additional arguments, please specify them " + echo "on the $0 command line or set the AUTOGEN_CONFIGURE_ARGS " + echo "environment variable." + echo +fi + + +if test -z "$ACLOCAL_FLAGS"; then -exit 1 + acdir=`$ACLOCAL --print-ac-dir` + m4list="pkg.m4" + + for file in $m4list + do + if [ ! -f "$acdir/$file" ]; then + echo + echo "WARNING: aclocal's directory is $acdir, but..." + echo " no file $acdir/$file" + echo " You may see fatal macro warnings below." + echo " If these files are installed in /some/dir, set the " + echo " ACLOCAL_FLAGS environment variable to \"-I /some/dir\"" + echo " or install $acdir/$file." + echo + fi + done +fi + +rm -rf autom4te.cache + +$ACLOCAL $ACLOCAL_FLAGS +RC=$? +if test $RC -ne 0; then + echo "$ACLOCAL gave errors. Please fix the error conditions and try again." + exit $RC +fi + +$LIBTOOLIZE --force || exit $? + +# optionally feature autoheader +($AUTOHEADER --version) < /dev/null > /dev/null 2>&1 && $AUTOHEADER || exit 1 + +$AUTOMAKE --add-missing || exit $? +$AUTOCONF || exit $? + +cd $ORIGDIR + +$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" +RC=$? +if test $RC -ne 0; then + echo + echo "Configure failed or did not finish!" + exit $RC +fi +echo +echo "Now type 'make' to compile $PROJECT." -- 2.30.2